﻿/**
 * 短信群发js
 * Created by mhy on 2017/1/9.
 */
$(document).ready(function() {
    $('#wizard').smartWizard();

    $('#wizard_verticle').smartWizard({
        transitionEffect: 'slide'
    });
    $('.buttonPrevious').addClass('btn btn-primary');
    $('.buttonNext').addClass('btn btn-success');
    $('.buttonFinish').addClass('btn btn-default');

    /* Ajax:
     * 功能:查看联系人中的所有联系人
     * URL:contacts/all
     * 方法:GET
     * 传递:无
     * 接收: result: boolean,
     err_msg: String,
     data: {
     contacts: [				// 联系人数组
     {
     id: int,
     name: String,
     phone_number: String
     },
     ...
     ]
     }
     * */
    // 显示联系人列表
    $.ajax({
        type:'GET',//请求类型
        url:'../message/contacts/all',//请求地址
        contentType: 'application/json;',//发送信息至服务器时内容编码类型
        dataType:'JSON',/*预期服务器返回的数据类型*/
        success:function (json) {//成功获取到后台返回的值后，对后台返回的值做相应的一系列操作
            var datas = [];
            var arr = [];

            for(var i = 0; i < json.data.contacts.length; i++){
                arr = [];
                arr[1] = json.data.contacts[i].id;
                arr[2] = json.data.contacts[i].name;
                arr[3] = json.data.contacts[i].phone_number;

                datas[i] = arr;
            }
            initTable( datas);

            /*获得联系人id*/
            var contactId = getUrlParam('contactId');  //联系人的id
            var contactArr = getUrlParam('contactArr') != null?getUrlParam('contactArr').split(','):null ; //联系人的数组

            var $checkboxes =  $("input[type='checkbox']");

            if(count(contactArr) != 0){ //初始化 联系人表格

                var dttable = $("#datatable-checkbox").dataTable();
                var nTrs = dttable.fnGetNodes();

                /*将已选择的联系人选择框改为checked*/
                for(var i = 0;i < count(contactArr);i++) {
                    for (var j = 0; j < nTrs.length; j++) {
                        if ($(nTrs[j]).children("td").eq(1).text() == contactArr[i]) {
                            $(nTrs[j]).children("td").eq(0).children("input").prop("checked", true);
                            break;
                        }
                    }   //end for
                }   //end for
            }else if(contactId != null){
                for (var j = 0; j < nTrs.length; j++) {
                    if ($(nTrs[j]).children("td").eq(1).text() == contactId) {
                        $(nTrs[j]).children("td").eq(0).children("input").prop("checked", true);

                        break;
                    }
                }   //end for
            }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
        },
        fail:function () { //如果在传输过程失败了：调用fail中对应的匿名函数(可选)
        },
        cache:true,
    });

    //确认发送短信
    $("button.btn-success").click(function () {
        /* 清空错误信息 */
        $("h4",".bs-example-modal-send").eq(2).css("display","none");
    });

    //点击确认发送
    $("button.btn-primary").click(function () {
        var messageContent = $("#message").val();   //短信内容
        var contactArr = [];
        var $info =  $("h4.info",".bs-example-modal-send");   //错误提示信息

        // 发送部门数组
    	var dttable = $("#datatable-checkbox").dataTable();
        var nTrs = dttable.fnGetNodes();

        for(var i = 0;i < nTrs.length;i++){
            if($(nTrs[i]).children("td").eq(0).children("input").prop("checked")){
                var conId = $(nTrs[i]).children("td").eq(1).text();
                contactArr.push(parseInt(conId));
            }
    	}   //end for
 
        //信息是否符合要求
        //信息是否为空
        if(messageContent.length == 0){
            promptInformation($info,"error","请输入短信内容");
            return;
        }else if(messageContent.length > 70){   //信息长度是否过长
            promptInformation($info,"error","短信内容不能超过70字");
            return;
        }else if(contactArr.length == 0){     //是否没有选择联系人
            promptInformation($info,"error","请选择联系人");

            return;
        }

        /*Ajax
        * 发送短信
        * */
        $.ajax({
        type:'PUT',//请求类型
        url:'../message/send',//请求地址
        contentType: 'application/json;',//发送信息至服务器时内容编码类型
        data:JSON.stringify({
                              "message":messageContent,
                              "id":contactArr
        }),
        dataType:'JSON',/*预期服务器返回的数据类型*/
        success:function (json) {//成功获取到后台返回的值后，对后台返回的值做相应的一系列操作
            var $prompt = $(".info");

            if(json.result){
                promptInformation($prompt,"success","恭喜，短信已发送成功! 2秒后自动跳转");

                setTimeout(function(){  //跳转联系人列表
                    window.location.href = "../contacts/contacts_list.html";
                }, 2000);
            }else{
                promptInformation($prompt,"error",json.err_msg);

                for(var i = 0;i < json.data.infos.length;i++){
                    $prompt.append(json.data.infos[i]);
                }

            }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
        },
        fail:function () { //如果在传输过程失败了：调用fail中对应的匿名函数(可选)
        },
        cache:true,
      });
    });

    $(".buttonNext",".actionBar").mouseover(function () {
        var $this = $(this);
        var $stepOne =  $("#step-1");
        var $stepTwo = $("#step-2");
        var $stepThree = $("#step-3");
        var $stepFour = $("#step-4");

        if($stepTwo.css("display") == "block"){
            var $message = $stepTwo.find("#message");

            if($message.val() == ""){
                createPNotify("温馨提示","error","请填写完整信息才能进入下一步");
                $this.addClass("buttonDisabled");
            }
        }else if($stepThree.css("display") == "block"){
	    var dttable = $("#datatable-checkbox").dataTable();
   	    var nTrs = dttable.fnGetNodes();
            var length = 0;

            for(i = 0;i < nTrs.length;i++){
               if($(nTrs[i]).children("td").eq(0).children("input").prop("checked")){
                  length++;
               }
    	    }   //end for	
       
            if(length == 0){
                createPNotify("温馨提示","error","请选择联系人才能进入下一步");
                $this.addClass("buttonDisabled");
            }
        }
    });
    $("#message").change(function () {
        var $buttonNext = $(".buttonNext",".actionBar");

        if($buttonNext.hasClass("buttonDisabled")){
            $buttonNext.removeClass("buttonDisabled");
        }
    });

    $("#datatable-checkbox").mouseover(function () {
        var $buttonNext = $(".buttonNext",".actionBar");

        if($buttonNext.hasClass("buttonDisabled")){
            $buttonNext.removeClass("buttonDisabled");
        }
    });

    //全选按钮
    $(".check-all").click(function () {
        checkAll(this,$('#datatable-checkbox'));
    })
});

//初始化表格
function initTable(data){
    var $datatable = $('#datatable-checkbox');
    $datatable.dataTable( {
        data:data,
        columns:[
            {
                "render": function () {
                    return '<input type="checkbox" class="flat"  name="table_records"/>';
                },
            },
            { "sTitle": "ID标识符","width": "5%"},
            { "sTitle": "姓名","width": "20%"},
            { "sTitle": "电话","width": "20%"},
        ],
        order:[
            [2, "desc"]
        ],
        columnDefs: [
            { orderable: false, targets: [0] },
        ],
        bAutoWidth:false,
    });
}
